﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using Newtonsoft.Json.Linq;

namespace HisGL.CA
{
  public class ReqCABase
  {
    /// <summary>
    /// projectUid	String	项目唯一标识，由云密钥分配
    /// </summary>
    public string ProjectUid { get; set; }

    /// <summary>
    /// applicationId	String	应用id，由云密钥分配
    /// </summary>
    public string ApplicationId { get; set; }

  }

  public class ReqCALogin : ReqCABase
  {
    public string UserUid { get; set; }

    public string UserPin { get; set; }

  }

  public class ReqCASign : ReqCABase
  {
    public string OriginData { get; set; }

    public string UserToken { get; set; }

    /// <summary>
    /// 是否携带签名时间戳，默认 false，不携带时间戳
    /// </summary>
    public bool UseTimestamp { get; set; }

    /// <summary>
    /// 是否使用国密signedData, false表示不使用。
    /// </summary>
    public bool UseQ7 { get; set; }

    /// <summary>
    /// 包含证书的标识，目前仅能包含自身签名证书，1	不包含签名证书 2	包含签名证书
    /// </summary>
    public int IncludeCertOption { get; set; }

    /// <summary>
    /// 签名后是否需要验证签名
    /// </summary>
    public bool NeedVerifySign { get; set; }

    /// <summary>
    /// 是否下载签名图片
    /// </summary>
    public bool DownLoadSealPic { get; set; }

  }

  public class ReqCAVerifySign : ReqCABase
  {
      public string OriginData { get; set; }

      public string SignedData { get; set; }

      public bool UseTimestamp { get; set; }

    /// <summary>
    /// 是否对签名证书验证
    /// 用于验证签名值内的签名证书
    /// False表示不验证签名内部的签名证书，
    /// True表示验证签名内部的签名证书
    /// </summary>
      public bool IncludeCert { get; set; }

    /// <summary>
      /// 云密钥返回的证书(Base64编码)，用于P7验签以及签名值内部的签名证书的比对，参考用户证书查询的响应
      /// IncludeCert为True需要传
    /// </summary>
      public string CertContent { get; set; }
  }

  public class ReqCAQRCode : ReqCABase
  {
    /// <summary>
    /// loginTypeBitValue	Int	参考身份验证类型常量，十进制整形数字，通常是高位认证的或运算（8+16+32），可从获取证书所支持的身份验证类型响应获得
    /// </summary>
    public int LoginTypeBitValue { get; set; }

    /// <summary>
    /// 为空则不指定用户
    /// </summary>
    public string UserUid { get; set; }

  }

  public class ReqCAQRLogin : ReqCABase
  {
    public string QRCodeIdentity { get; set; }


  }

  public class ReqCASignPdf : ReqCABase
  {
    public string FilePath { get; set; }

    public string pdfData { get; set; }

    public string UserToken { get; set; }

    public bool UseTimestamp { get; set; }

    /// <summary>
    /// width	Int	签章的宽度
    /// </summary>
    public int Width { get; set; }

    /// <summary>
    /// height	Int	签章的高度
    /// </summary>
    public int Height { get; set; }

    /// <summary>
    /// page	Int	签章所在的PDF页数，从1开始计数 -1表示最后一页
    /// </summary>
    public int Page { get; set; }

    /// <summary>
    /// x	Int	签章的x坐标
    /// </summary>
    public int X { get; set; }

    /// <summary>
    /// y	Int	签章的y坐标
    /// </summary>
    public int Y { get; set; }

    public string FieldName { get; set; }

    public string FieldText { get; set; }

    public bool UseFieldText { get; set; }


    /// <summary>
    /// 是否下载签名图片
    /// </summary>
    public bool DownLoadSealPic { get; set; }

  }

}